import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/***
 *
 */
public class FindNumber {
    public static void main(String[] args) {

        /** [] 表示可接收的字符列表，例如[abc]表示a、b、c中的任意一个字符  **/
        /** ^ 表示非。如[^ abc] 则表示除abc之外的任意一个字符，包括数字和特殊符号 **/
        /** - 表示连字符。例如[0-9],[A-Z] 就表示这两个数中间的任意一个数  **/
        /** 正则表达式[0-9]表示0-9中的任意数字，\d 也是一样的，我们需要转义，所以需要写成\\d **/
        /** \\D 表示[^ 0-9] 匹配单个非数字字符**/
        /** 其中{n}表示表达式重复几次，例如\\d{3}则就等价于 \\d\\d\\d 表示连续的3个数字 **/
        /** \\w 匹配单个数字、大小写字母。和下划线   相当于[0-9a-zA-Z] **/
        /** \\W 匹配单个非数字、大小写字母。相当于[^0-9a-zA-Z] **/
        /** (?i)表示不区分大小写,加在那一部分之前表示那一部分不区分大小写。例如：a(?i)bc
         * 表示bc不区分大小写.  ((?i))表示对其中一个字符不进行大小写区分
         * 不区分大小写也可以使用Pattern.compile(regexp,Pattern.CASE_INSENSITIVE)**/

        /** \\s 表示匹配任意的空格字符，\\S 则相反 **/
        /** *表示 匹配0至多个在它之前的字符，+匹配1至多个在它之前的字符， **/




        // 可以表示3个任意数字、字母（大小写）
        String regexp="zo+";
        Pattern pa=Pattern.compile(regexp);
        Matcher matcher = pa.matcher("zo");
        while (matcher.find()){
            System.out.print(matcher.group(0));
        }
        System.out.println();

        String str = "wer1389980000ty1234564uiod234345675f";//将字符串中的数字替换成#。

        str = str.replaceAll("\\d+","#");

        System.out.println(str);




    }
}
